package com.zhijian.medical.service.impl;

import cn.hutool.core.collection.CollectionUtil;
import com.zhijian.medical.dao.local.RoutinePatientDiagnoseReportMapper;
import com.zhijian.medical.entity.po.RoutinePatientDiagnoseReport;
import com.zhijian.medical.entity.vo.request.RoutinePatientDiagnoseReportSaveOrUpdateVo;
import com.zhijian.medical.entity.vo.request.RoutinePatientDiagnoseReportSearchVo;
import com.zhijian.medical.entity.vo.response.*;
import com.zhijian.medical.enums.diagnose.report.*;
import com.zhijian.medical.service.RoutinePatientDiagnoseReportService;
import com.zhijian.util.AssertUtil;
import com.zhijian.util.page.Page;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * 诊断-结构化报告业务处理层
 *
 * @author auto
 * @version: 1.0
 * @date 2024-11-29 17:36:35
 */
@Slf4j
@Service
public class RoutinePatientDiagnoseReportServiceImpl implements RoutinePatientDiagnoseReportService {

    @Autowired
    private RoutinePatientDiagnoseReportMapper mapper;


    @Override
    public RoutinePatientDiagnoseReport selectById(Long id) {
        return mapper.selectByPrimaryKey(id);
    }

    @Override
    public RoutinePatientDiagnoseReportVo selectVoById(Long id) {
        return mapper.selectVoById(id);
    }

    @Override
    public void deleteById(Long id) {
        mapper.deleteByPrimaryKey(id);
    }

    @Override
    public void deleteByIdList(List<Long> idList) {
        if (CollectionUtil.isEmpty(idList)) {
            return;
        }
        mapper.deleteByIdList(idList);
    }

    @Override
    public Long insert(RoutinePatientDiagnoseReport routinePatientDiagnoseReport) {
        Date now = new Date();
        routinePatientDiagnoseReport.setCreateTime(now);
        routinePatientDiagnoseReport.setUpdateTime(now);
        routinePatientDiagnoseReport.setPatientId(0L);
        return mapper.insert(routinePatientDiagnoseReport) > 0 ? routinePatientDiagnoseReport.getId() : 0L;
    }

    @Override
    public Long insertSelective(RoutinePatientDiagnoseReport routinePatientDiagnoseReport) {
        Date now = new Date();
        routinePatientDiagnoseReport.setCreateTime(now);
        routinePatientDiagnoseReport.setUpdateTime(now);
        return mapper.insertSelective(routinePatientDiagnoseReport) > 0 ? routinePatientDiagnoseReport.getId() : 0L;
    }

    @Override
    public boolean update(RoutinePatientDiagnoseReport routinePatientDiagnoseReport) {
        Date now = new Date();
        routinePatientDiagnoseReport.setUpdateTime(now);
        return mapper.updateByPrimaryKey(routinePatientDiagnoseReport) != 0;
    }

    @Override
    public boolean updateByPrimaryKeySelective(RoutinePatientDiagnoseReport record) {
        Date now = new Date();
        record.setUpdateTime(now);
        return mapper.updateByPrimaryKeySelective(record) != 0;
    }

    @Override
    public boolean save(RoutinePatientDiagnoseReportSaveOrUpdateVo saveOrUpdateVo) {
        RoutinePatientDiagnoseReport routinePatientDiagnoseReport = new RoutinePatientDiagnoseReport();
        BeanUtils.copyProperties(saveOrUpdateVo, routinePatientDiagnoseReport);
        routinePatientDiagnoseReport.setData(saveOrUpdateVo.getData().toJSONString());
        return this.insertSelective(routinePatientDiagnoseReport) != 0;
    }

    @Override
    public boolean modify(RoutinePatientDiagnoseReportSaveOrUpdateVo saveOrUpdateVo) {
        RoutinePatientDiagnoseReport old = this.selectById(saveOrUpdateVo.getId());
        AssertUtil.notNull(old, "此数据不存在或者已被删除");
        RoutinePatientDiagnoseReport routinePatientDiagnoseReport = new RoutinePatientDiagnoseReport();
        saveOrUpdateVo.setPatientId(0L);
        BeanUtils.copyProperties(saveOrUpdateVo, routinePatientDiagnoseReport);
        routinePatientDiagnoseReport.setData(saveOrUpdateVo.getData().toJSONString());
        return this.updateByPrimaryKeySelective(routinePatientDiagnoseReport);
    }

    @Override
    public RoutinePatientDiagnoseReportVo selectOne(RoutinePatientDiagnoseReportSearchVo routinePatientDiagnoseReportSearchVo) {
        return mapper.selectOne(routinePatientDiagnoseReportSearchVo);
    }

    @Override
    public Integer count(RoutinePatientDiagnoseReportSearchVo routinePatientDiagnoseReportSearchVo) {
        return mapper.count(routinePatientDiagnoseReportSearchVo);
    }

    @Override
    public List<RoutinePatientDiagnoseReportVo> selectList(RoutinePatientDiagnoseReportSearchVo routinePatientDiagnoseReportSearchVo) {
        return mapper.selectList(routinePatientDiagnoseReportSearchVo);
    }

    @Override
    public Page<RoutinePatientDiagnoseReportVo> selectPage(RoutinePatientDiagnoseReportSearchVo routinePatientDiagnoseReportSearchVo) {
        AssertUtil.check(Objects.isNull(routinePatientDiagnoseReportSearchVo.getPageNum()) || Objects.isNull(routinePatientDiagnoseReportSearchVo.getPageSize()), "分页参数不能为空");
        //先直接查总数
        int count = count(routinePatientDiagnoseReportSearchVo);
        //分页
        Page<RoutinePatientDiagnoseReportVo> page = new Page<>(true, count, routinePatientDiagnoseReportSearchVo.getPageNum(), routinePatientDiagnoseReportSearchVo.getPageSize());
        routinePatientDiagnoseReportSearchVo.setStartIndex(page.getStartIndex());
        page.setPage(true);
        page.setTotalCount(count);
        List<RoutinePatientDiagnoseReportVo> responseVos = this.selectList(routinePatientDiagnoseReportSearchVo);
        page.setData(responseVos);
        return page;
    }

    @Override
    public boolean insertBatch(List<RoutinePatientDiagnoseReport> entities) {
        return CollectionUtil.isNotEmpty(entities) && mapper.insertBatch(entities) > 0;
    }

    @Override
    public void deleteByCondition(RoutinePatientDiagnoseReportSearchVo routinePatientDiagnoseReportSearchVo) {
        //慎重用此方法！！
        mapper.deleteByCondition(routinePatientDiagnoseReportSearchVo);
    }

    /**
     * 获取报告选项
     *
     * @return
     */
    @Override
    public RoutinePatientDiagnoseReportOptionVo getOption() {
        RoutinePatientDiagnoseReportOptionVo optionVo = new RoutinePatientDiagnoseReportOptionVo();
        optionVo.setType(ReportEnum.TypeEnum.getList());
        return optionVo;
    }

    /**
     * 获取食道癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportEsophagusOptionVo getEsophagusOption() {

        RoutinePatientDiagnoseReportEsophagusOptionVo vo = new RoutinePatientDiagnoseReportEsophagusOptionVo();
        //术前辅助治疗
        vo.setPreoperativeAdjuvantTherapy(EsophagusEnum.PreoperativeAdjuvantTherapyEnum.getList());

        //标本名称
        vo.setSampleName(EsophagusEnum.SampleNameEnum.getList());

        //肿瘤部位
        vo.setTumorLocation(EsophagusEnum.TumorLocationEnum.getList());

        //肿瘤大小
        vo.setTumorSize(EsophagusEnum.TumorSizeEnum.getList());

        //巨检分型
        vo.setMacroscopicClassification(EsophagusEnum.MacroscopicClassificationEnum.getList());

        //组织学分型
        vo.setHistologicalType(EsophagusEnum.HistologicalTypeEnum.getList());

        //百分比
        vo.setPercentage(EsophagusEnum.PercentageEnum.getList());

        //组织学分级
        vo.setOrganizationalGrading(EsophagusEnum.OrganizationalGradingEnum.getList());

        //肿瘤浸润深度
        vo.setDepthOfTumorInfiltration(EsophagusEnum.DepthOfTumorInfiltrationEnum.getList());

        //累及胃食管交界
        vo.setInvolvingTheGastroesophagealJunction(EsophagusEnum.InvolvingTheGastroesophagealJunctionEnum.getList());

        //脉管癌栓
        vo.setVascularCancerThrombus(EsophagusEnum.VascularCancerThrombusEnum.getList());

        //神经侵犯
        vo.setNeurologicalInvasion(EsophagusEnum.NeurologicalInvasionEnum.getList());

        //是否侵犯
        vo.setViolation(EsophagusEnum.ViolationEnum.getList());

        //两端切缘
        vo.setCutEdgesAtBothEnds(EsophagusEnum.CutEdgesAtBothEndsEnum.getList());

        //上切缘
        vo.setUpperCuttingEdge(EsophagusEnum.UpperCuttingEdgeEnum.getList());

        //下切缘
        vo.setLowerCuttingEdge(EsophagusEnum.LowerCuttingEdgeEnum.getList());

        //环周切缘
        vo.setCircumferentialCuttingEdge(EsophagusEnum.CircumferentialCuttingEdgeEnum.getList());

        //吻合圈
        vo.setMatchingCircle(EsophagusEnum.MatchingCircleEnum.getList());

        //周围食管黏膜
        vo.setSurroundingEsophagealMucosa(EsophagusEnum.SurroundingEsophagealMucosaEnum.getList());

        //周围胃黏膜
        vo.setSurroundingGastricMucosa(EsophagusEnum.SurroundingGastricMucosaEnum.getList());

        //淋巴结
        vo.setLymphGland(EsophagusEnum.LymphGlandEnum.getList());

        //远处转移
        vo.setDistantTransfer(EsophagusEnum.DistantTransferEnum.getList());

        //免疫组化-表达式
        vo.setImmunohistochemistryExpression(EsophagusEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        vo.setImmunohistochemistryOtherExpression(EsophagusEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //原位杂交/特殊染色-分析结果
        vo.setInSituHybridizationExpression(EsophagusEnum.InSituHybridizationExpressionEnum.getList());

        //其他送检组织
        vo.setOtherInspectionOrganizations(EsophagusEnum.OtherInspectionOrganizationsEnum.getList());

        return vo;
    }


    /**
     * 获取胃癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportStomachOptionVo getStomachOption() {
        RoutinePatientDiagnoseReportStomachOptionVo stomachOptionVo = new RoutinePatientDiagnoseReportStomachOptionVo();

        //其他送检组织
        stomachOptionVo.setOtherInspectionOrganizations(StomachEnum.OtherInspectionOrganizationsEnum.getList());

        //分析结果表达式
        stomachOptionVo.setAnalysisResultsExpression(StomachEnum.AnalysisResultsExpressionEnum.getList());

        //MMR状态
        stomachOptionVo.setMmrStatus(StomachEnum.MmrStatusEnum.getList());

        //错配修复蛋白表达
        stomachOptionVo.setMismatchRepairProteinExpression(StomachEnum.MismatchRepairProteinExpressionEnum.getList());

        //免疫组化-表达式
        stomachOptionVo.setImmunohistochemistryExpression(StomachEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        stomachOptionVo.setImmunohistochemistryOtherExpression(StomachEnum.ImmunohistochemistryOtherExpressionEnum.getList());


        //远处转移
        stomachOptionVo.setDistantTransfer(StomachEnum.DistantTransferEnum.getList());

        //淋巴结
        stomachOptionVo.setLymphGland(StomachEnum.LymphGlandEnum.getList());

        //网膜组织
        stomachOptionVo.setOmentalTissue(StomachEnum.OmentalTissueEnum.getList());

        //周围胃黏膜
        stomachOptionVo.setSurroundingGastricMucosa(StomachEnum.SurroundingGastricMucosaEnum.getList());

        //吻合圈情况
        stomachOptionVo.setMatchingCircleSituation(StomachEnum.MatchingCircleSituationEnum.getList());

        //下切缘
        stomachOptionVo.setLowerCuttingEdge(StomachEnum.LowerCuttingEdgeEnum.getList());

        //神经侵犯
        stomachOptionVo.setNeurologicalInvasion(StomachEnum.NeurologicalInvasionEnum.getList());

        //脉管癌栓
        stomachOptionVo.setVascularCancerThrombus(StomachEnum.VascularCancerThrombusEnum.getList());

        //浸润方式
        stomachOptionVo.setInfiltrationMethod(StomachEnum.InfiltrationMethodEnum.getList());

        //浸润深度
        stomachOptionVo.setDepthOfInfiltration(StomachEnum.DepthOfInfiltrationEnum.getList());

        //粘液分型
        stomachOptionVo.setMucusClassification(StomachEnum.MucusClassificationEnum.getList());

        //肿瘤级别
        stomachOptionVo.setTumorGrade(StomachEnum.TumorGradeEnum.getList());

        //Slewent分型
        stomachOptionVo.setSlewenClassification(StomachEnum.SlewenClassificationEnum.getList());

        //Lauren分型
        stomachOptionVo.setLaurenClassification(StomachEnum.LaurenClassificationEnum.getList());

        //百分比
        stomachOptionVo.setPercentage(StomachEnum.PercentageEnum.getList());

        //WHO组织学分型
        stomachOptionVo.setWhoOrganizationCreditType(StomachEnum.WhoOrganizationCreditTypeEnum.getList());

        //巨检分型
        stomachOptionVo.setMacroscopicClassification(StomachEnum.MacroscopicClassificationEnum.getList());

        //肿瘤大小
        stomachOptionVo.setTumorSize(StomachEnum.TumorSizeEnum.getList());

        //肿瘤部位
        stomachOptionVo.setTumorLocation(StomachEnum.TumorLocationEnum.getList());

        //标本类型
        stomachOptionVo.setTypeOfSpecimen(StomachEnum.TypeOfSpecimenEnum.getList());

        //术前辅助治疗
        stomachOptionVo.setPreoperativeAdjuvantTherapy(StomachEnum.PreoperativeAdjuvantTherapyEnum.getList());


        //病理分期-TNM分期
        stomachOptionVo.setLesionTnmStage(StomachEnum.LesionTnmStageEnum.getList());

        //病理分期-T
        stomachOptionVo.setLesionT(StomachEnum.LesionTEnum.getList());

        //病理分期-T
        stomachOptionVo.setLesionN(StomachEnum.LesionNEnum.getList());

        //病理分期-M
        stomachOptionVo.setLesionM(StomachEnum.LesionMEnum.getList());

        //病理分期-总分期
        stomachOptionVo.setLesionTotalInstallment(StomachEnum.LesionTotalInstallmentEnum.getList());

        return stomachOptionVo;
    }

    /**
     * 获取结直肠癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportColorectalOptionVo getColorectalOption() {
        RoutinePatientDiagnoseReportColorectalOptionVo colorectalOptionVo = new RoutinePatientDiagnoseReportColorectalOptionVo();
        // 肿瘤位置
        colorectalOptionVo.setPosition(ColorectalEnum.PositionEnum.getList());
        // 术前辅助治疗
        colorectalOptionVo.setAssistance(ColorectalEnum.AssistanceEnum.getList());
        // 标本名称
        colorectalOptionVo.setSpecimen(ColorectalEnum.SpecimenEnum.getList());
        // 肿瘤大小
        colorectalOptionVo.setTumorSize(ColorectalEnum.TumorSizeEnum.getList());

        // 巨检分型
        colorectalOptionVo.setMacroscopicClassification(ColorectalEnum.MacroscopicClassificationEnum.getList());
        // 组织学类型
        colorectalOptionVo.setHistologicalType(ColorectalEnum.HistologicalTypeEnum.getList());
        // 病灶-百分比
        colorectalOptionVo.setPercentage(ColorectalEnum.PercentageEnum.getList());
        // 病灶-组织学分级
        colorectalOptionVo.setLevel(ColorectalEnum.LevelEnum.getList());
        // 病灶-肿瘤浸润深度
        colorectalOptionVo.setVascular(ColorectalEnum.VascularEnum.getList());
        // 病灶-脉管癌栓
        colorectalOptionVo.setVascularCancerThrombus(ColorectalEnum.VascularCancerThrombusEnum.getList());
        // 病灶-神经侵犯
        colorectalOptionVo.setNeurologicalInvasion(ColorectalEnum.NeurologicalInvasionEnum.getList());
        // 病灶-肿瘤出芽
        colorectalOptionVo.setBuddingEnum(ColorectalEnum.BuddingEnum.getList());
        // 病灶-低分化癌簇
        colorectalOptionVo.setPoorly(ColorectalEnum.PoorlyEnum.getList());
        // 病灶-网膜组织
        colorectalOptionVo.setOmentum(ColorectalEnum.OmentumEnum.getList());
        // 病灶-其他组织
        colorectalOptionVo.setOtherOrganizations(ColorectalEnum.OtherOrganizationsEnum.getList());
        // 病灶-是否侵犯
        colorectalOptionVo.setInfringement(ColorectalEnum.InfringementEnum.getList());
        // 两端切缘
        colorectalOptionVo.setCutEdgesAtBothEnds(ColorectalEnum.CutEdgesAtBothEndsEnum.getList());
        // 近端切缘
        colorectalOptionVo.setCutEdgesNear(ColorectalEnum.CutEdgesNearEnum.getList());
        // 远端切缘
        colorectalOptionVo.setCutEdgesFar(ColorectalEnum.CutEdgesFarEnum.getList());
        // 环周切缘
        colorectalOptionVo.setCircumferentialCuttingEdge(ColorectalEnum.CircumferentialCuttingEdgeEnum.getList());
        // 吻合圈
        colorectalOptionVo.setMatchingCircle(ColorectalEnum.MatchingCircleEnum.getList());
        // 肛门
        colorectalOptionVo.setAnus(ColorectalEnum.AnusEnum.getList());
        // 周围肠黏膜
        colorectalOptionVo.setSurroundingGastricMucosa(ColorectalEnum.SurroundingGastricMucosaEnum.getList());
        // 阑尾
        colorectalOptionVo.setAppendix(ColorectalEnum.AppendixEnum.getList());
        // 淋巴结
        colorectalOptionVo.setLymphGland(ColorectalEnum.LymphGlandEnum.getList());
        // 有无癌结节
        colorectalOptionVo.setHasOrNo(ColorectalEnum.HasOrNoEnum.getList());
        // 远处转移
        colorectalOptionVo.setDistantTransfer(ColorectalEnum.DistantTransferEnum.getList());
        // 免疫组化-肿瘤细胞表达
        colorectalOptionVo.setExpression(ColorectalEnum.ImmunohistochemistryExpressionEnum.getList());
        // 免疫组化-其他表达
        colorectalOptionVo.setOtherExpression(ColorectalEnum.ImmunohistochemistryOtherExpressionEnum.getList());
        // 免疫组化-分析结果
        colorectalOptionVo.setResult(ColorectalEnum.ResultEnum.getList());
        // MMR状态-错配修复蛋白表达
        colorectalOptionVo.setMmrExpression(ColorectalEnum.MmrExpressionEnum.getList());
        // MMR状态-状态
        colorectalOptionVo.setMmrStatus(ColorectalEnum.MmrStatusEnum.getList());
        // 原位杂交-分析结果
        colorectalOptionVo.setInSituHybridizationExpression(ColorectalEnum.InSituHybridizationExpressionEnum.getList());
        // 特殊染色-分析结果
        colorectalOptionVo.setSpecial(ColorectalEnum.SpecialEnum.getList());
        // 其他送检组织
        colorectalOptionVo.setOtherInspectionOrganizations(ColorectalEnum.OtherInspectionOrganizationsEnum.getList());

        //病理分期-TNM分期
        colorectalOptionVo.setLesionTnmStage(ColorectalEnum.LesionTnmStageEnum.getList());

        //病理分期-T
        colorectalOptionVo.setLesionT(ColorectalEnum.LesionTEnum.getList());

        //病理分期-N
        colorectalOptionVo.setLesionN(ColorectalEnum.LesionNEnum.getList());

        //病理分期-M
        colorectalOptionVo.setLesionM(ColorectalEnum.LesionMEnum.getList());

        //病理分期-总分期
        colorectalOptionVo.setLesionTotalInstallment(ColorectalEnum.LesionTotalInstallmentEnum.getList());
        return colorectalOptionVo;
    }

    /**
     * 获取结肝癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportLiverOptionVo getLiverOption() {
        RoutinePatientDiagnoseReportLiverOptionVo liverOptionVo = new RoutinePatientDiagnoseReportLiverOptionVo();

        //术前辅助治疗
        liverOptionVo.setPreoperativeAdjuvantTherapy(LiverEnum.PreoperativeAdjuvantTherapyEnum.getList());

        //标本名称
        liverOptionVo.setSampleName(LiverEnum.SampleNameEnum.getList());

        //肿瘤部位
        liverOptionVo.setTumorLocation(LiverEnum.TumorLocationEnum.getList());

        //肿瘤大小
        liverOptionVo.setTumorSize(LiverEnum.TumorSizeEnum.getList());

        //巨检分型
        liverOptionVo.setMacroscopicClassification(LiverEnum.MacroscopicClassificationEnum.getList());

        //病理诊断
        liverOptionVo.setPathologicalDiagnosis(LiverEnum.PathologicalDiagnosisEnum.getList());

        //组织学亚型
        liverOptionVo.setHistologicalSubtype(LiverEnum.HistologicalSubtypeEnum.getList());

        //分化程度
        liverOptionVo.setDifferentiationDegree(LiverEnum.DifferentiationDegreeEnum.getList());

        //坏死
        liverOptionVo.setNecrosis(LiverEnum.NecrosisEnum.getList());

        //卫星灶
        liverOptionVo.setSatelliteNodule(LiverEnum.SatelliteNoduleEnum.getList());

        //大血管癌栓
        liverOptionVo.setLargeVesselCancerThrombus(LiverEnum.LargeVesselCancerThrombusEnum.getList());

        //胆管癌栓
        liverOptionVo.setBileDuctCancerThrombus(LiverEnum.BileDuctCancerThrombusEnum.getList());

        //神经侵犯
        liverOptionVo.setNeurologicalInvasion(LiverEnum.NeurologicalInvasionEnum.getList());

        //肝被膜侵犯
        liverOptionVo.setLiverCapsuleInvasion(LiverEnum.LiverCapsuleInvasionEnum.getList());

        //肝外脏器或结构侵犯
        liverOptionVo.setExternalOrgansOrStructuresInvasion(LiverEnum.ExternalOrgansOrStructuresInvasionEnum.getList());

        //切缘名称
        liverOptionVo.setEdgeName(LiverEnum.EdgeNameEnum.getList());

        //切缘情况
        liverOptionVo.setEdgeSituation(LiverEnum.EdgeSituationEnum.getList());

        //周围肝脂肪变性（F）
        liverOptionVo.setPeripheralLiverFatDegeneration(LiverEnum.PeripheralLiverFatDegenerationEnum.getList());

        //炎症（G）
        liverOptionVo.setInflammation(LiverEnum.InflammationEnum.getList());

        //纤维化分期（S）
        liverOptionVo.setFibrosisStage(LiverEnum.FibrosisStageEnum.getList());

        //胆囊
        liverOptionVo.setGallbladder(LiverEnum.GallbladderEnum.getList());

        //淋巴结
        liverOptionVo.setLymphGland(LiverEnum.LymphGlandEnum.getList());

        //远处转移
        liverOptionVo.setRemoteTransfer(LiverEnum.RemoteTransferEnum.getList());

        //免疫组化-表达式
        liverOptionVo.setImmunohistochemistryExpression(LiverEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        liverOptionVo.setImmunohistochemistryOtherExpression(LiverEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //特殊染色-分析结果
        liverOptionVo.setSpecial(LiverEnum.SpecialEnum.getList());

        //原位杂交/特殊染色-分析结果
        liverOptionVo.setInSituHybridizationExpression(LiverEnum.InSituHybridizationExpressionEnum.getList());

        //其他送检组织
        liverOptionVo.setOtherInspectionOrganizations(LiverEnum.OtherInspectionOrganizationsEnum.getList());

        return liverOptionVo;
    }

    /**
     * 获取结胰胆壶腹癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportPancreaticOptionVo getPancreaticOption() {
        RoutinePatientDiagnoseReportPancreaticOptionVo pancreaticOptionVo = new RoutinePatientDiagnoseReportPancreaticOptionVo();

        //术前辅助治疗
        pancreaticOptionVo.setPreoperativeAdjuvantTherapy(PancreaticEnum.PreoperativeAdjuvantTherapyEnum.getList());

        //标本名称
        pancreaticOptionVo.setSampleName(PancreaticEnum.SampleNameEnum.getList());

        //肿瘤类型
        pancreaticOptionVo.setTumorType(PancreaticEnum.TumorTypeEnum.getList());

        //标本部位
        pancreaticOptionVo.setSamplePosition(PancreaticEnum.SamplePositionEnum.getList());

        //肿瘤大小
        pancreaticOptionVo.setTumorSize(PancreaticEnum.TumorSizeEnum.getList());

        //组织学类型
        pancreaticOptionVo.setHistologicalType(PancreaticEnum.HistologicalTypeEnum.getList());

        //百分比
        pancreaticOptionVo.setPercentage(PancreaticEnum.PercentageEnum.getList());

        //组织学分级
        pancreaticOptionVo.setHistologicalGrade(PancreaticEnum.HistologicalGradeEnum.getList());

        //组织学亚型
        pancreaticOptionVo.setHistologicalSubtype(PancreaticEnum.HistologicalSubtypeEnum.getList());

        //壶腹部侵犯
        pancreaticOptionVo.setAmpullaInvolved(PancreaticEnum.AmpullaInvolvedEnum.getList());

        //远端胆管侵犯
        pancreaticOptionVo.setDistalBileDuctInvolved(PancreaticEnum.DistalBileDuctInvolvedEnum.getList());

        //小肠侵犯
        pancreaticOptionVo.setIntestinalInvolved(PancreaticEnum.IntestinalInvolvedEnum.getList());

        //胰腺侵犯
        pancreaticOptionVo.setPancreaticInvolved(PancreaticEnum.PancreaticInvolvedEnum.getList());

        //大血管侵犯
        pancreaticOptionVo.setVascularInvolved(PancreaticEnum.VascularInvolvedEnum.getList());

        //微血管侵犯
        pancreaticOptionVo.setMicrovascularInvolved(PancreaticEnum.MicrovascularInvolvedEnum.getList());

        //神经侵犯
        pancreaticOptionVo.setNerveInvolved(PancreaticEnum.NerveInvolvedEnum.getList());

        //切缘名称
        pancreaticOptionVo.setCutEdgeName(PancreaticEnum.CutEdgeNameEnum.getList());

        //切缘情况
        pancreaticOptionVo.setCutEdgeSituation(PancreaticEnum.CutEdgeSituationEnum.getList());

        //胃
        pancreaticOptionVo.setStomach(PancreaticEnum.StomachEnum.getList());

        //肠
        pancreaticOptionVo.setIntestine(PancreaticEnum.IntestineEnum.getList());

        //胆囊
        pancreaticOptionVo.setGallbladder(PancreaticEnum.GallbladderEnum.getList());

        //胰腺
        pancreaticOptionVo.setPancreas(PancreaticEnum.PancreasEnum.getList());

        //脾脏
        pancreaticOptionVo.setSpleen(PancreaticEnum.SpleenEnum.getList());

        //周伟情况-表单1
        pancreaticOptionVo.setForm1(PancreaticEnum.Form1Enum.getList());

        //周伟情况-表单2
        pancreaticOptionVo.setForm2(PancreaticEnum.Form2Enum.getList());

        //远处转移
        pancreaticOptionVo.setMetastasis(PancreaticEnum.MetastasisEnum.getList());

        //分子检测-检测方法
        pancreaticOptionVo.setDetectionMethod(PancreaticEnum.DetectionMethodEnum.getList());

        //分子检测-检测结果
        pancreaticOptionVo.setDetectionResult(PancreaticEnum.DetectionResultEnum.getList());

        //其他送检组织
        pancreaticOptionVo.setOtherInspectionOrganizations(PancreaticEnum.OtherInspectionOrganizationsEnum.getList());

        //淋巴结
        pancreaticOptionVo.setLymphGland(PancreaticEnum.LymphGlandEnum.getList());

        //免疫组化-表达式
        pancreaticOptionVo.setImmunohistochemistryExpression(PancreaticEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        pancreaticOptionVo.setImmunohistochemistryOtherExpression(PancreaticEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //原位杂交/特殊染色-分析结果
        pancreaticOptionVo.setInSituHybridizationExpression(PancreaticEnum.InSituHybridizationExpressionEnum.getList());

        return pancreaticOptionVo;
    }


    /**
     * 获取肺癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportLungsOptionVo getLungsOption() {
        RoutinePatientDiagnoseReportLungsOptionVo lungsOptionVo = new RoutinePatientDiagnoseReportLungsOptionVo();

        //术前辅助治疗
        lungsOptionVo.setPreoperativeAdjuvantTherapy(LungsEnum.PreoperativeAdjuvantTherapyEnum.getList());

        //标本名称
        lungsOptionVo.setSampleName(LungsEnum.SampleNameEnum.getList());

        //术式
        lungsOptionVo.setOperationType(LungsEnum.OperationTypeEnum.getList());

        //部位
        lungsOptionVo.setPart(LungsEnum.PartEnum.getList());

        //肿瘤大小
        lungsOptionVo.setTumorSize(LungsEnum.TumorSizeEnum.getList());

        //组织学类型
        lungsOptionVo.setHistologicalType(LungsEnum.HistologicalTypeEnum.getList());

        //分化程度
        lungsOptionVo.setDifferentiationDegree(LungsEnum.DifferentiationDegreeEnum.getList());

        //脉管瘤栓
        lungsOptionVo.setVesselTumorThrombus(LungsEnum.VesselTumorThrombusEnum.getList());

        //神经侵犯
        lungsOptionVo.setNeurologicalInvasion(LungsEnum.NeurologicalInvasionEnum.getList());

        //气腔播散（STAS）
        lungsOptionVo.setAirSpaceSpread(LungsEnum.AirSpaceSpreadEnum.getList());

        //胸膜侵犯
        lungsOptionVo.setPleuralInvasion(LungsEnum.PleuralInvasionEnum.getList());

        //叶段支气管
        lungsOptionVo.setLeafSegmentalBronchus(LungsEnum.LeafSegmentalBronchusEnum.getList());

        //肺外侵犯
        lungsOptionVo.setLungExternalInvasion(LungsEnum.LungExternalInvasionEnum.getList());

        //周围肺
        lungsOptionVo.setSurroundingLung(LungsEnum.SurroundingLungEnum.getList());

        //切缘名称
        lungsOptionVo.setCutEdgeName(LungsEnum.CutEdgeNameEnum.getList());

        //切缘情况
        lungsOptionVo.setCutEdgeSituation(LungsEnum.CutEdgeSituationEnum.getList());

        //淋巴结
        lungsOptionVo.setLymphGland(LungsEnum.LymphGlandEnum.getList());

        //远处转移
        lungsOptionVo.setRemoteTransfer(LungsEnum.RemoteTransferEnum.getList());

        //病理分期-TNM分期
        lungsOptionVo.setPathologicalStageTNM(LungsEnum.PathologicalStageTNMEnum.getList());

        //病理分期-T
        lungsOptionVo.setPathologicalStageT(LungsEnum.PathologicalStageTEnum.getList());

        //病理分期-N
        lungsOptionVo.setPathologicalStageN(LungsEnum.PathologicalStageNEnum.getList());

        //病理分期-M
        lungsOptionVo.setPathologicalStageMEnum(LungsEnum.PathologicalStageMEnum.getList());

        //病理分期-总分期
        lungsOptionVo.setPathologicalStageTotal(LungsEnum.PathologicalStageTotalEnum.getList());

        //免疫组化-表达式
        lungsOptionVo.setImmunohistochemistryExpression(LungsEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他
        lungsOptionVo.setImmunohistochemistryOtherExpression(LungsEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //免疫组化-表达式2
        lungsOptionVo.setImmunohistochemistryExpression2(LungsEnum.ImmunohistochemistryExpression2Enum.getList());

        //原位杂交/特殊染色-分析结果
        lungsOptionVo.setInSituHybridizationExpression(LungsEnum.InSituHybridizationExpressionEnum.getList());

        //分子检测-方法
        lungsOptionVo.setMolecularDetectionMethod(LungsEnum.MolecularDetectionMethodEnum.getList());

        //分子检测-结果
        lungsOptionVo.setMolecularDetectionResult(LungsEnum.MolecularDetectionResultEnum.getList());

        //其他送检组织
        lungsOptionVo.setOtherInspectionOrganizations(LungsEnum.OtherInspectionOrganizationsEnum.getList());

        return lungsOptionVo;
    }

    /**
     * 获得乳腺癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportBreastOptionVo getBreastOption() {
        RoutinePatientDiagnoseReportBreastOptionVo breastOptionVo = new RoutinePatientDiagnoseReportBreastOptionVo();

        //标本名称
        breastOptionVo.setSampleName(BreastEnum.SampleNameEnum.getList());

        //标本类型
        breastOptionVo.setSampleType(BreastEnum.SampleTypeEnum.getList());

        //标本部位
        breastOptionVo.setSamplePart(BreastEnum.SamplePartEnum.getList());

        //病灶位置
        breastOptionVo.setTumorLocation(BreastEnum.TumorLocationEnum.getList());

        //病灶大小
        breastOptionVo.setTumorSize(BreastEnum.TumorSizeEnum.getList());

        //浸润性癌灶数量
        breastOptionVo.setTumorNumber(BreastEnum.TumorNumberEnum.getList());

        //组织学类型
        breastOptionVo.setHistologicalType(BreastEnum.HistologicalTypeEnum.getList());

        //非浸润佳小叶性肿瘤
        breastOptionVo.setNonInvasiveLiquidBreastTumor(BreastEnum.NonInvasiveLiquidBreastTumorEnum.getList());

        //百分比
        breastOptionVo.setPercentage(BreastEnum.PercentageEnum.getList());

        //腺管形成
        breastOptionVo.setDuctalFormation(BreastEnum.DuctalFormationEnum.getList());

        //核多形性
        breastOptionVo.setNucleiMultiformity(BreastEnum.NucleiMultiformityEnum.getList());

        //核分裂计数
        breastOptionVo.setNucleiMitosisCount(BreastEnum.NucleiMitosisCountEnum.getList());

        //组织学类型-等级
        breastOptionVo.setHistologicalTypeGrade(BreastEnum.HistologicalTypeGradeEnum.getList());

        //原位癌
        breastOptionVo.setInSituCancer(BreastEnum.InSituCancerEnum.getList());

        //原位癌-百分比
        breastOptionVo.setInSituCancerPercentage(BreastEnum.InSituCancerPercentageEnum.getList());

        //核级
        breastOptionVo.setNucleiGrade(BreastEnum.NucleiGradeEnum.getList());

        //坏死
        breastOptionVo.setNecrosis(BreastEnum.NecrosisEnum.getList());

        //钙化
        breastOptionVo.setCalcification(BreastEnum.CalcificationEnum.getList());

        //肿瘤间质浸润淋巴细胞sTILs
        breastOptionVo.setTILs(BreastEnum.TILsEnum.getList());

        //脉管癌栓
        breastOptionVo.setVascularCancerThrombus(BreastEnum.VascularCancerThrombusEnum.getList());

        //神经侵犯
        breastOptionVo.setNeurologicalInvasion(BreastEnum.NeurologicalInvasionEnum.getList());

        //乳头侵犯
        breastOptionVo.setNippleInvasion(BreastEnum.NippleInvasionEnum.getList());

        //皮肤侵犯
        breastOptionVo.setSkinInvasion(BreastEnum.SkinInvasionEnum.getList());

        //淋巴结
        breastOptionVo.setLymphGland(BreastEnum.LymphGlandEnum.getList());

        //淋巴结结外侵犯（ENE）
        breastOptionVo.setLymphGlandExtraluminalInvasion(BreastEnum.LymphGlandExtraluminalInvasionEnum.getList());

        //TNM分期-TNM分期
        breastOptionVo.setLesionTnmStage(BreastEnum.LesionTnmStageEnum.getList());

        //病理分期-T
        breastOptionVo.setPathologicalStageT(BreastEnum.PathologicalStageTEnum.getList());

        //病理分期-N
        breastOptionVo.setPathologicalStageN(BreastEnum.PathologicalStageNEnum.getList());

        //病理分期-M
        breastOptionVo.setPathologicalStageM(BreastEnum.PathologicalStageMEnum.getList());

        //病理分期-总分期
        breastOptionVo.setPathologicalStageTotal(BreastEnum.PathologicalStageTotalEnum.getList());

        //免疫组化-分析结果
        breastOptionVo.setResult(BreastEnum.ResultEnum.getList());

        //免疫组化-其他表达
        breastOptionVo.setOtherExpression(BreastEnum.OtherExpressionEnum.getList());

        //免疫组化-PDL1-分析结果
        breastOptionVo.setPdl1Result(BreastEnum.Pdl1ResultEnum.getList());

        //其他送检组织
        breastOptionVo.setOtherInspectionOrganizations(BreastEnum.OtherInspectionOrganizationsEnum.getList());

        return breastOptionVo;
    }

    /**
     * 获得新辅后乳腺癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportAdjuvantBreastOptionVo getAdjuvantBreastOption() {
        RoutinePatientDiagnoseReportAdjuvantBreastOptionVo adjuvantBreastOptionVo = new RoutinePatientDiagnoseReportAdjuvantBreastOptionVo();

        //标本名称
        adjuvantBreastOptionVo.setSampleName(AdjuvantBreastEnum.SampleNameEnum.getList());

        //标本类型
        adjuvantBreastOptionVo.setSampleType(AdjuvantBreastEnum.SampleTypeEnum.getList());

        //标本部位
        adjuvantBreastOptionVo.setSamplePart(AdjuvantBreastEnum.SamplePartEnum.getList());

        //新辅助治疗方式
        adjuvantBreastOptionVo.setNeoauxiliaryTreatment(AdjuvantBreastEnum.NeoauxiliaryTreatmentEnum.getList());

        //病灶位置
        adjuvantBreastOptionVo.setLesionPosition(AdjuvantBreastEnum.LesionPositionEnum.getList());

        //病灶大小
        adjuvantBreastOptionVo.setLesionSize(AdjuvantBreastEnum.LesionSizeEnum.getList());

        //浸润性病灶数量
        adjuvantBreastOptionVo.setInvasiveLesionCount(AdjuvantBreastEnum.InvasiveLesionCountEnum.getList());

        //组织学类型(WHO)
        adjuvantBreastOptionVo.setHistologicalType(AdjuvantBreastEnum.HistologicalTypeEnum.getList());

        //百分比
        adjuvantBreastOptionVo.setPercentage(AdjuvantBreastEnum.PercentageEnum.getList());

        //腺管形成
        adjuvantBreastOptionVo.setDuctalFormation(AdjuvantBreastEnum.DuctalFormationEnum.getList());

        //核多形性
        adjuvantBreastOptionVo.setNucleiMultiformity(AdjuvantBreastEnum.NucleiMultiformityEnum.getList());

        //核分裂计数
        adjuvantBreastOptionVo.setNucleiMitosisCount(AdjuvantBreastEnum.NucleiMitosisCountEnum.getList());

        //组织学类型-等级
        adjuvantBreastOptionVo.setHistologicalTypeGrade(AdjuvantBreastEnum.HistologicalTypeGradeEnum.getList());

        //原位癌
        adjuvantBreastOptionVo.setInSituCancerEnum(AdjuvantBreastEnum.InSituCancerEnum.getList());

        //原位癌-百分比
        adjuvantBreastOptionVo.setInSituCancerPercentage(AdjuvantBreastEnum.InSituCancerPercentageEnum.getList());

        //核级
        adjuvantBreastOptionVo.setNucleiGrade(AdjuvantBreastEnum.NucleiGradeEnum.getList());

        //坏死
        adjuvantBreastOptionVo.setNecrosis(AdjuvantBreastEnum.NecrosisEnum.getList());

        //钙化
        adjuvantBreastOptionVo.setCalcification(AdjuvantBreastEnum.CalcificationEnum.getList());

        //肿瘤间质浸润淋巴细胞sTILs
        adjuvantBreastOptionVo.setTILs(AdjuvantBreastEnum.TILsEnum.getList());

        //脉管癌栓
        adjuvantBreastOptionVo.setVascularCancerThrombus(AdjuvantBreastEnum.VascularCancerThrombusEnum.getList());

        //神经侵犯
        adjuvantBreastOptionVo.setNeurologicalInvasion(AdjuvantBreastEnum.NeurologicalInvasionEnum.getList());

        //乳头侵犯
        adjuvantBreastOptionVo.setNippleInvasion(AdjuvantBreastEnum.NippleInvasionEnum.getList());

        //皮肤侵犯
        adjuvantBreastOptionVo.setSkinInvasion(AdjuvantBreastEnum.SkinInvasionEnum.getList());

        //淋巴结-名称
        adjuvantBreastOptionVo.setLymphNodeName(AdjuvantBreastEnum.LymphNodeNameEnum.getList());

        //淋巴结结外侵犯（ENE）
        adjuvantBreastOptionVo.setLymphGlandExtraluminalInvasion(AdjuvantBreastEnum.LymphGlandExtraluminalInvasionEnum.getList());

        //原发灶Miller-Payne分级
        adjuvantBreastOptionVo.setPrimaryTumorMillerPayneGrade(AdjuvantBreastEnum.PrimaryTumorMillerPayneGradeEnum.getList());

        //RCB分級
        adjuvantBreastOptionVo.setRCBGrade(AdjuvantBreastEnum.RCBGradeEnum.getList());

        //肿瘤细胞密度
        adjuvantBreastOptionVo.setTumorCellDensity(AdjuvantBreastEnum.TumorCellDensityEnum.getList());

        //TNM分期-TNM分期
        adjuvantBreastOptionVo.setLesionTnmStage(AdjuvantBreastEnum.LesionTnmStageEnum.getList());

        //病理分期-T
        adjuvantBreastOptionVo.setPathologicalStageT(AdjuvantBreastEnum.PathologicalStageTEnum.getList());

        //病理分期-N
        adjuvantBreastOptionVo.setPathologicalStageN(AdjuvantBreastEnum.PathologicalStageNEnum.getList());

        //病理分期-M
        adjuvantBreastOptionVo.setPathologicalStageM(AdjuvantBreastEnum.PathologicalStageMEnum.getList());

        //病理分期-总分期
        adjuvantBreastOptionVo.setPathologicalStageTotal(AdjuvantBreastEnum.PathologicalStageTotalEnum.getList());

        //免疫组化-分析结果
        adjuvantBreastOptionVo.setResult(AdjuvantBreastEnum.ResultEnum.getList());

        //免疫组化-其他表达
        adjuvantBreastOptionVo.setOtherExpression(AdjuvantBreastEnum.OtherExpressionEnum.getList());

        //免疫组化-PDL1-分析结果
        adjuvantBreastOptionVo.setPdl1Result(AdjuvantBreastEnum.Pdl1ResultEnum.getList());

        //其他送检组织
        adjuvantBreastOptionVo.setOtherInspectionOrganizations(AdjuvantBreastEnum.OtherInspectionOrganizationsEnum.getList());

        return adjuvantBreastOptionVo;

    }

    /**
     * 获得前列腺癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportProstateOptionVo getProstateOption() {
        RoutinePatientDiagnoseReportProstateOptionVo prostateOptionVo = new RoutinePatientDiagnoseReportProstateOptionVo();

        //术前辅助治疗
        prostateOptionVo.setPreoperativeTreatment(ProstateEnum.PreoperativeTreatmentEnum.getList());

        //标本名称
        prostateOptionVo.setSampleName(ProstateEnum.SampleNameEnum.getList());

        //肿瘤部位
        prostateOptionVo.setTumorLocation(ProstateEnum.TumorLocationEnum.getList());

        //组织学类型
        prostateOptionVo.setHistologicalType(ProstateEnum.HistologicalTypeEnum.getList());

        //百分比
        prostateOptionVo.setPercentage(ProstateEnum.PercentageEnum.getList());

        //Gleason评分
        prostateOptionVo.setGleasonScore(ProstateEnum.GleasonScoreEnum.getList());

        //WHO/ISUP分级分组
        prostateOptionVo.setWHOISUPGrouping(ProstateEnum.WHOISUPGroupingEnum.getList());

        //主要成分比例
        prostateOptionVo.setMainComponentRatio(ProstateEnum.MainComponentRatioEnum.getList());

        //伴有<5%的较高级别成分
        prostateOptionVo.setWithLessThan5PercentOfHigherGradeComponents(ProstateEnum.WithLessThan5PercentOfHigherGradeComponentsEnum.getList());

        //PSA值分组
        prostateOptionVo.setPSAValueGrouping(ProstateEnum.PSAValueGroupingEnum.getList());

        //癌周前列腺组织病变
        prostateOptionVo.setProstateTissueLesion(ProstateEnum.ProstateTissueLesionEnum.getList());

        //前列腺包膜外侵犯
        prostateOptionVo.setProstateExtraprostaticInvasion(ProstateEnum.ProstateExtraprostaticInvasionEnum.getList());

        //神经侵犯
        prostateOptionVo.setNeurologicalInvasion(ProstateEnum.NeurologicalInvasionEnum.getList());

        //脉管侵犯
        prostateOptionVo.setVascularInvasion(ProstateEnum.VascularInvasionEnum.getList());

        //精囊腺侵犯
        prostateOptionVo.setSeminalVesicleInvasion(ProstateEnum.SeminalVesicleInvasionEnum.getList());

        //尿道侵犯
        prostateOptionVo.setUrethralInvasion(ProstateEnum.UrethralInvasionEnum.getList());

        //前列腺周围器官侵犯
        prostateOptionVo.setPeriprostaticOrganInvasion(ProstateEnum.PeriprostaticOrganInvasionEnum.getList());

        //输精管侵犯
        prostateOptionVo.setVasDeferensInvasion(ProstateEnum.VasDeferensInvasionEnum.getList());

        //淋巴结
        prostateOptionVo.setLymphGland(ProstateEnum.LymphGlandEnum.getList());

        //切缘名称
        prostateOptionVo.setMargins(ProstateEnum.MarginsEnum.getList());

        //切缘情况
        prostateOptionVo.setMarginsStatus(ProstateEnum.MarginsStatusEnum.getList());

        //远处转移
        prostateOptionVo.setMetastasis(ProstateEnum.MetastasisEnum.getList());

        //TNM分期-TNM分期
        prostateOptionVo.setLesionTnmStage(ProstateEnum.LesionTnmStageEnum.getList());

        //TNM分期-T
        prostateOptionVo.setPathologicalStageT(ProstateEnum.PathologicalStageTEnum.getList());

        //TNM分期-N
        prostateOptionVo.setPathologicalStageN(ProstateEnum.PathologicalStageNEnum.getList());

        //TNM分期-M
        prostateOptionVo.setPathologicalStageM(ProstateEnum.PathologicalStageMEnum.getList());

        //错配修复蛋白表达
        prostateOptionVo.setMismatchRepairProteinExpression(ProstateEnum.MismatchRepairProteinExpressionEnum.getList());

        //MMR状态
        prostateOptionVo.setMismatchRepairStatus(ProstateEnum.MismatchRepairStatusEnum.getList());

        //原位杂交/特殊染色-分析结果
        prostateOptionVo.setInSituHybridizationExpression(ProstateEnum.InSituHybridizationExpressionEnum.getList());

        //免疫组化-表达式
        prostateOptionVo.setImmunohistochemistryExpression(ProstateEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        prostateOptionVo.setImmunohistochemistryOtherExpression(ProstateEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //分子检测-检测方法
        prostateOptionVo.setDetectionMethod(ProstateEnum.DetectionMethodEnum.getList());

        //分子检测-结果
        prostateOptionVo.setMolecularDetectionResult(ProstateEnum.MolecularDetectionResultEnum.getList());

        //其他送检组织
        prostateOptionVo.setOtherInspectionOrganizations(ProstateEnum.OtherInspectionOrganizationsEnum.getList());

        return prostateOptionVo;
    }

    /**
     * 获得膀胱报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportBladderOptionVo getBladderOption() {

        RoutinePatientDiagnoseReportBladderOptionVo bladderOptionVo = new RoutinePatientDiagnoseReportBladderOptionVo();

        //前期治疗
        bladderOptionVo.setPreTreatment(BladderEnum.PreTreatmentEnum.getList());

        //标本类型
        bladderOptionVo.setSampleType(BladderEnum.SampleTypeEnum.getList());

        //肿瘤部位
        bladderOptionVo.setTumorLocation(BladderEnum.TumorLocationEnum.getList());

        //cm大体类型
        bladderOptionVo.setCmGrossType(BladderEnum.CmGrossTypeEnum.getList());

        //组织学类型
        bladderOptionVo.setHistologicalType(BladderEnum.HistologicalTypeEnum.getList());

        //百分比
        bladderOptionVo.setPercentage(BladderEnum.PercentageEnum.getList());

        //组织学亚性
        bladderOptionVo.setHistologicalSubtype(BladderEnum.HistologicalSubtypeEnum.getList());

        //浸润深度
        bladderOptionVo.setDepthOfInvasion(BladderEnum.DepthOfInvasionEnum.getList());

        //脉管侵犯
        bladderOptionVo.setVascularInvasion(BladderEnum.VascularInvasionEnum.getList());

        //神经侵犯
        bladderOptionVo.setNeurologicalInvasion(BladderEnum.NeurologicalInvasionEnum.getList());

        //侵及邻近器官
        bladderOptionVo.setInvasionOfAdjacentOrgans(BladderEnum.InvasionOfAdjacentOrgansEnum.getList());

        //切缘名称
        bladderOptionVo.setMargins(BladderEnum.MarginsEnum.getList());

        //切缘情况
        bladderOptionVo.setCutEdgeSituation(BladderEnum.CutEdgeSituationEnum.getList());

        //前列腺
        bladderOptionVo.setProstate(BladderEnum.ProstateEnum.getList());

        //精囊腺
        bladderOptionVo.setSeminalVesicle(BladderEnum.SeminalVesicleEnum.getList());

        //其他情况-表单1
        bladderOptionVo.setForm1(BladderEnum.Form1Enum.getList());

        //其他情况-表单2
        bladderOptionVo.setForm2(BladderEnum.Form2Enum.getList());

        //远处转移
        bladderOptionVo.setMetastasis(BladderEnum.MetastasisEnum.getList());

        //病理分期-TNM分期
        bladderOptionVo.setLesionTnmStage(BladderEnum.LesionTnmStageEnum.getList());

        //病理分期-T
        bladderOptionVo.setLesionT(BladderEnum.LesionTEnum.getList());

        //病理分期-N
        bladderOptionVo.setLesionN(BladderEnum.LesionNEnum.getList());

        //病理分期-M
        bladderOptionVo.setLesionM(BladderEnum.LesionMEnum.getList());

        //免疫组化-表达式
        bladderOptionVo.setImmunohistochemistryExpression(BladderEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        bladderOptionVo.setImmunohistochemistryOtherExpression(BladderEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //原位杂交/特殊染色-分析结果
        bladderOptionVo.setInSituHybridizationExpression(BladderEnum.InSituHybridizationExpressionEnum.getList());

        //分子检测-检测方法
        bladderOptionVo.setDetectionMethod(BladderEnum.DetectionMethodEnum.getList());

        //分子检测-结果
        bladderOptionVo.setMolecularDetectionResult(BladderEnum.MolecularDetectionResultEnum.getList());

        //淋巴结
        bladderOptionVo.setLymphGland(BladderEnum.LymphGlandEnum.getList());

        //其他送检组织
        bladderOptionVo.setOtherInspectionOrganizations(BladderEnum.OtherInspectionOrganizationsEnum.getList());


        return bladderOptionVo;
    }

    /**
     * 获得胶质癌报告选项
     */
    @Override
    public RoutinePatientDiagnoseReportColloidOptionVo getColloidOption() {
        RoutinePatientDiagnoseReportColloidOptionVo colloidOptionVo = new RoutinePatientDiagnoseReportColloidOptionVo();

        //术前治疗
        colloidOptionVo.setPreTreatment(ColloidEnum.PreTreatmentEnum.getList());

        //标本名称
        colloidOptionVo.setSampleName(ColloidEnum.SampleNameEnum.getList());

        //标本类型
        colloidOptionVo.setSampleType(ColloidEnum.SampleTypeEnum.getList());

        //手术方式
        colloidOptionVo.setOperationMode(ColloidEnum.OperationModeEnum.getList());

        //肿瘤部位
        colloidOptionVo.setTumorLocation(ColloidEnum.TumorLocationEnum.getList());

        //肿瘤大小
        colloidOptionVo.setTumorSize(ColloidEnum.TumorSizeEnum.getList());

        //组织学诊断
        colloidOptionVo.setHistologicalDiagnosis(ColloidEnum.HistologicalDiagnosisEnum.getList());

        //组织学诊断-考虑
        colloidOptionVo.setHistologicalDiagnosisConsider(ColloidEnum.HistologicalDiagnosisConsiderEnum.getList());

        //组织学分级
        colloidOptionVo.setHistologicalGrade(ColloidEnum.HistologicalGradeEnum.getList());

        //组织描述
        colloidOptionVo.setHistologicalDescription(ColloidEnum.HistologicalDescriptionEnum.getList());

        //浸润（二级结构）
        colloidOptionVo.setInfiltration(ColloidEnum.InfiltrationEnum.getList());

        //分子检测-项目
        colloidOptionVo.setMolecularDetection(ColloidEnum.MolecularDetectionEnum.getList());

        //免疫组化-表达式
        colloidOptionVo.setImmunohistochemistryExpression(ColloidEnum.ImmunohistochemistryExpressionEnum.getList());

        //免疫组化-其他表达
        colloidOptionVo.setImmunohistochemistryOtherExpression(ColloidEnum.ImmunohistochemistryOtherExpressionEnum.getList());

        //原位杂交/特殊染色-分析结果
        colloidOptionVo.setInSituHybridizationExpression(ColloidEnum.InSituHybridizationExpressionEnum.getList());

        //淋巴结
        colloidOptionVo.setLymphGland(ColloidEnum.LymphGlandEnum.getList());

        //其他送检组织
        colloidOptionVo.setOtherInspectionOrganizations(ColloidEnum.OtherInspectionOrganizationsEnum.getList());

        return colloidOptionVo;
    }

}